﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using RN.Componentes;
using RN.Entidades;

public partial class Formularios_Personal : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            CargarGrid();
        }
    }

    public void CargarGrid()
    {
        List<Personal> obj = CPersonal.Traer();
        grvResponsable.DataSource = obj;
        grvResponsable.DataBind();
    }

    protected void btnRegistrar_Click(object sender, EventArgs e)
    {
        Personal per = new Personal();

        per.Nombre = txtNombre.Text;
        per.Carnetidentidad = Convert.ToInt32(txtCI.Text);
        per.Direccion = txtDireccion.Text;
        per.Telefono = Convert.ToInt32(txtTelefono.Text);
        per.Iniciocontrato = Convert.ToDateTime(txtFechainicio.Text);
        per.Fincontrato = Convert.ToDateTime(txtFechafin.Text);
        per.Usuario = txtUsuario.Text;
        per.Contraseña = txtContraseña.Text;
        per.Codigotiporesponsable.Codigo = Convert.ToInt32(ddlTresponsable.SelectedValue);

        bool coper = CPersonal.Insertar(per);

        if (coper)
        {
            lblMensaje.Text = "El responsable fue registrado correctamente";
            ResetFormControlValues(txtID);
            ResetFormControlValues(txtNombre);
            ResetFormControlValues(txtCI);
            ResetFormControlValues(txtDireccion);
            ResetFormControlValues(txtTelefono);
            ResetFormControlValues(txtFechainicio);
            ResetFormControlValues(txtFechafin);
            ResetFormControlValues(txtUsuario);
            ResetFormControlValues(txtContraseña);
            CargarGrid();
        }
        else
        {
            lblMensaje.Text = "El responsable no fue registrado correctamente";
        }
    }
    protected void grvResponsable_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        int id = Convert.ToInt32(e.CommandArgument);

        if (e.CommandName == "Seleccionar")
        {
            Personal per = CPersonal.TraerXId(id);

            txtID.Text = per.Codigo.ToString();
            txtNombre.Text = per.Nombre;
            txtDireccion.Text = per.Direccion;
            txtCI.Text = per.Carnetidentidad.ToString();
            txtTelefono.Text = per.Telefono.ToString();
            txtFechainicio.Text = per.Iniciocontrato.ToString();
            txtFechafin.Text = per.Fincontrato.ToString();
            txtUsuario.Text = per.Usuario;
            txtContraseña.Text = per.Contraseña;
            ddlTresponsable.SelectedIndex = per.Codigotiporesponsable.Codigo;
        }
        else
        {
            if (e.CommandName == "Eliminar")
            {
                bool cofam = CFamilia.EliminarFamilia(id);
                if (cofam)
                {
                    lblMensaje.Text = "El responsable fue eliminado correctamente";
                    CargarGrid();
                }
                else
                {
                    lblMensaje.Text = "El responsable no fue eliminado correctamente";
                }
            }
        }
    }
    protected void btnModificar_Click(object sender, EventArgs e)
    {
        Personal per = new Personal();

        per.Codigo = Convert.ToInt32(txtID.Text);
        per.Nombre = txtNombre.Text;
        per.Carnetidentidad = Convert.ToInt32(txtCI.Text);
        per.Direccion = txtDireccion.Text;
        per.Telefono = Convert.ToInt32(txtTelefono.Text);
        per.Iniciocontrato = Convert.ToDateTime(txtFechainicio.Text);
        per.Fincontrato = Convert.ToDateTime(txtFechafin.Text);
        per.Usuario = txtUsuario.Text;
        per.Contraseña = txtContraseña.Text;
        per.Codigotiporesponsable.Codigo = Convert.ToInt32(ddlTresponsable.SelectedValue);

        bool coper= CPersonal.ActualizarPersonal(per);

        if (coper)
        {
            ResetFormControlValues(txtID);
            ResetFormControlValues(txtNombre);
            ResetFormControlValues(txtCI);
            ResetFormControlValues(txtDireccion);
            ResetFormControlValues(txtTelefono);
            ResetFormControlValues(txtFechainicio);
            ResetFormControlValues(txtFechafin);
            ResetFormControlValues(txtUsuario);
            ResetFormControlValues(txtContraseña);
            CargarGrid();
        }
        else
        {
            lblMensaje.Text = "El responsable no fue modificado correctamente";
        }
    }

    public void ResetFormControlValues(Control parent)
    {
        foreach (Control c in parent.Controls)
        {
            if (c.Controls.Count > 0)
            {
                ResetFormControlValues(c);
            }
            else
            {
                switch (c.GetType().ToString())
                {
                    case "System.Web.UI.WebControls.TextBox":
                        ((TextBox)c).Text = "";
                        break;
                    case "System.Web.UI.WebControls.CheckBox":
                        ((CheckBox)c).Checked = false;
                        break;
                    case "System.Web.UI.WebControls.RadioButton":
                        ((RadioButton)c).Checked = false;
                        break;
                }
            }
        }
    }
}